#pragma once

class TeamManager;
class PeopleManager;
class AuctionManager;
class NameManager;
class UserManager;
class Settings;
class LeagueManager;
class GameAI;
class EventGenerator;
class MatchManager;

class ServiceProvider
{
public:
	virtual ~ServiceProvider(){}

	virtual TeamManager&	GetTeamMgr() = 0;
	virtual PeopleManager&	GetPeopleMgr() = 0;
	virtual AuctionManager&	GetAuctionMgr() = 0;
	virtual NameManager&	GetNameMgr() = 0;
	virtual UserManager&	GetUserMgr() = 0;
	virtual const Settings&	GetSettings() const = 0;
	virtual	LeagueManager& GetLeagueMgr() const = 0;
	virtual	const GameAI&	GetAI() const = 0;
	virtual	const EventGenerator&	GetMatchEventGenerator() const = 0;
	virtual	const MatchManager&	GetMatchMgr() const = 0;
};